{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>中文文本特征词抽取<h3>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<h3>中文文本特征词抽取<h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "h:\\python3.6\\lib\\importlib\\_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject\n",
      "  return f(*args, **kwds)\n"
     ]
    }
   ],
   "source": [
    "import jieba \n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "data = [\n",
    "    \"今天很残酷,明天更残酷,后天很美好,但绝大部分是死在明天的晚上,所以每个人不要放弃.\",\n",
    "    \"我们看到的从很远星系来的光时在几百万年之前发出的,这样当我们看到于轴时,我们是在看它的过去.\",\n",
    "    \"如果只用一种方式了解某样事物,你就不会真正了解它.了解事物真正的含义的秘密取决于如何将其与我们所了解的事物相联系.\"\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cut_word( text ):\n",
    "    \"\"\"jieba分词\"\"\"\n",
    "    return ( \" \".join(list( jieba.cut( text ))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data_new ['今天 很 残酷 , 明天 更 残酷 , 后天 很 美好 , 但 绝大部分 是 死 在 明天 的 晚上 , 所以 每个 人 不要 放弃 .', '我们 看到 的 从 很 远 星系 来 的 光时 在 几百万年 之前 发出 的 , 这样 当 我们 看到 于轴时 , 我们 是 在 看 它 的 过去 .', '如果 只用 一种 方式 了解 某样 事物 , 你 就 不会 真正 了解 它 . 了解 事物 真正 的 含义 的 秘密 取决于 如何 将 其 与 我们 所 了解 的 事物 相 联系 .']\n",
      "data_result\n",
      " [[0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 2 0 1 0 2 1 0 0 0 1 1 0 0 0]\n",
      " [0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 3 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 1 1]\n",
      " [1 1 0 0 4 3 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 0 2 1 0 0 1 0 0]]\n",
      "特征名字:\n",
      " ['一种', '不会', '不要', '之前', '了解', '事物', '于轴时', '今天', '光时', '几百万年', '发出', '取决于', '只用', '后天', '含义', '如何', '如果', '我们', '所以', '放弃', '方式', '明天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝大部分', '美好', '联系', '过去', '这样']\n"
     ]
    }
   ],
   "source": [
    "data_new = []\n",
    "for sent in data:\n",
    "    result = cut_word( sent )\n",
    "    data_new.append( result )\n",
    "print(\"data_new\",data_new)\n",
    "transfer = CountVectorizer(stop_words=[\".\",\",\"])\n",
    "data_result = transfer.fit_transform( data_new )\n",
    "print(\"data_result\\n\",data_result.toarray())\n",
    "print(\"特征名字:\\n\",transfer.get_feature_names())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "我 爱 北京 天安门\n"
     ]
    }
   ],
   "source": [
    "text = \"我爱北京天安门\"\n",
    "cut_word( text )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
